package com.doit.day03

import java.io.{FileInputStream, FileOutputStream, ObjectInputStream, ObjectOutputStream}
import javax.tools.FileObject

object _伴生类和伴生对象 {
  def main(args: Array[String]): Unit = {
    //调用了Tiger的构造方法
    val tiger: Tiger = new Tiger("大脑斧", 2)


    //第一次执行，肯定是 3次
    //伴生对象里面的一个特点，可以通过apply方法来创建class类的对象
    //调用的apply方法
//    val 大脑斧1: Tiger = Tiger("大脑斧", 2)

//    println(tiger == 大脑斧)

    //还有一个方法叫 unapply，可以用于模式匹配   很有用

    //第三点：动静分离

    //第四点：可以互相访问对方的私有属性和方法
    //但是外面却访问不到
  }
}
case class ABD(val name:String)
//第一点，class类和object类他们的类名要一样
//class类是object类的伴生类
//object类是class类的伴生对象
class Tiger(val name:String,val age:Int){
  def eatPeople()={
    println("人真好吃！！！")
  }

}

object Tiger{
  val gender:String = "male"
  val weight:Double = 200.99

  def paTree()={
    println("我会爬树！！！")
  }

  def apply(name: String, age: Int): Tiger = new Tiger(name, age)

  def unapply(arg: Tiger): Option[(String, Int)] = Some(arg.name,arg.age)


}
